package com.ll.spring5.service;

import com.ll.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;

/**
 * 2020/9/8 - 11:19
 */
//value属性值可以省略不写
//默认是类名首字母小写
//@Component(value = "userService") //<bean id="userService class="..."/>
@Service
public class UserService {

    @Value("ll")
    private String name;

    //定义dao类型属性
    //不需要set方法
    //添加注入属性注解
//    @Autowired //根据类型进行注入
//    @Qualifier(value = "userDaoImpl1")
//    private UserDao userDao;

    //    @Resource //根据类型进行注入
//    @Resource(name = "userDaoImpl1")

    @Autowired
    @Qualifier("userDaoImpl2")
    private UserDao userDao;

    public void add() {
        System.out.println("UserService add()...");
        System.out.println("name的值为: " + name);
        userDao.add();
    }



//    @Autowired 根据属性类型进行自动装配
//    @Qualifier 根据名称进行注入,要和@Autowired一起使用
//    @Resource 根据类型和名称进行注入,不推荐使用
//    @Value(value = "abc") 注入普通类型属性,例如:为类中的成员变量注入属性

/*    @Bean
    public void test2() {
        System.out.println("UserService类,用@Bean标注的方法");
    }*/
}
